import request from "../../utils/request"
let isSend = false
// pages/search/search.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    placeholderData: "", // 搜索框的默认值
    showList: [],// 热搜榜的歌曲推荐
    searchContent: "", //输入框的值
    searchList: [],// 搜索的匹配数据
    historyList: [], // 历史记录中
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 调用 获取搜索框的默认值
    this.getPlaceholderData()

    // 获取历史记录
    this.getHistory()
  },

  // 从本地获取搜索历史记录
  getHistory() {
    let historyList = wx.getStorageSync('searchHistory')
    if (historyList) {
      this.setData({
        historyList
      })
    }
  },

  // 获取默认搜索框的值
  async getPlaceholderData() {
    let placeholderData = await request("/search/default")
    let showMusic = await request("/search/hot/detail")
    // 修改状态
    this.setData({
      placeholderData: placeholderData.data.showKeyword,
      showList: showMusic.data
    })
  },

  // 表单项内容发生改变的回调
  handleInputChange(event) {

    // 修改searchContent的状态数据
    this.setData({
      searchContent: event.detail.value.trim(),
    })

    if (isSend) {
      return
    }
    isSend = true;
    this.getSearchList();
    // 函数节流
    setTimeout(() => {
      isSend = false;
    }, 300)
  },

  // 获取搜索数据的功能函数
  async getSearchList() {
    // 如果搜索框没有值，我们是要显示歌曲推荐
    if (!this.data.searchContent) {
      this.setData({
        searchList: []
      })
      return;
    }

    // 发请求获取关键字模糊匹配数据
    let { searchContent, historyList } = this.data
    let searchList = await request("/search", { keywords: searchContent, limit: 10 })
    this.setData({
      searchList: searchList.result.songs
    })
    if (historyList.indexOf(searchContent) != -1) {// 在历史记录中以及有出现过
      historyList.splice(historyList.indexOf(searchContent), 1) // 在历史记录中删除
    }
    // 将搜索的关键字添加到搜索历史记录中
    historyList.unshift(searchContent)
    this.setData({
      historyList
    })
    wx.setStorageSync('searchHistory', historyList)
  },

  // 清除搜索内容
  clearSearchContent() {
    this.setData({
      searchContent: "",
      searchList: [],
    })
  },

  // 删除搜索历史记录
  deleteSearchHistory() {
    wx.showModal({
      content: '确认删除吗？',
      success: (res) => {
        if (res.confirm) { // 点击确认删除
          this.setData({
            historyList: []
          });
          wx.removeStorageSync('searchHistory')
        }
      }
    })
  },

  /* 跳转到歌曲详情页面 */
  toSongDeatil(event) {
    console.log(event)
    wx.navigateTo({
      url: '/pages/songDetail/songDetail?musicId=' + event.currentTarget.id,
    })
  },

  /* 点击热搜索榜进行搜索 */
  searchHotSong(event) {
    console.log(event)
    this.setData({
      searchContent: event.currentTarget.dataset.hotwords
    })
    // 发送请求获取搜索匹配到的数据
    this.getSearchList()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})